package com.lv.service.utils

import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.BindingAdapter
import com.lv.common.ktx.LoadSrc
import com.lv.service.R

/**
 * 作者： ygx
 * 创建日期：2021/12/29 10:22 PM
 * 签名： 天行健，君子以自强不息；地势坤，君子以厚德载物。
 *      _              _           _     _   ____  _             _ _
 *     / \   _ __   __| |_ __ ___ (_) __| | / ___|| |_ _   _  __| (_) ___
 *    / _ \ | '_ \ / _` | '__/ _ \| |/ _` | \___ \| __| | | |/ _` | |/ _ \
 *   / ___ \| | | | (_| | | | (_) | | (_| |  ___) | |_| |_| | (_| | | (_) |
 *  /_/   \_\_| |_|\__,_|_|  \___/|_|\__,_| |____/ \__|\__,_|\__,_|_|\___/
 *
 * You never know what you can do until you try !
 * ----------------------------------------------------------------
 *
 */

/**
 * imageView支持图片加载 绑定
 */
@BindingAdapter("srcYgxCompat", requireAll = false)
fun imgSrc(iv: ImageView, src: Any?) {

    when (src) {
        is String -> {
            iv.LoadSrc(src)
//            when {
//                src.startsWith("//img.cniao5.com") -> "https:$src"
//                src.startsWith("/img.cniao5.com") -> "https:/$src"
//                else -> src
//            }
        }
        else -> {
            iv.LoadSrc(R.drawable.icon_default_header)
        }
//            src ?: R.drawable.icon_default_header
    }
//    iv.load(imgRes)
//    Glide.with(iv)
//        .load(imgRes)
//        .into(iv)
}

/**
 * imageView支持图片加载 绑定
 */
@BindingAdapter("srcYgxKFCompat", requireAll = false)
fun imgKFSrc(iv: ImageView, src: Any?) {

    when (src) {
        is String -> {
            iv.LoadSrc(src)

        }
        else -> {
            iv.LoadSrc(com.lv.common.R.drawable.icon_default_shop)
        }
    }
}

/**
 * 图片资源支持tint颜色修改，支持colorRes和colorInt形式
 */
@BindingAdapter("tintYgx")
fun imgColor(iv: ImageView, color: Int) {
    if (color == 0) return
    runCatching {
        iv.setColorFilter(iv.resources.getColor(color))
    }.onFailure {
        iv.setColorFilter(color)
    }
}

/**
 * textColor的binding形式，支持colorRes和colorInt形式
 */
@BindingAdapter("android:textColor")
fun tvColor(tv: TextView, color: Int) {
    if (color == 0) return
    runCatching {
        tv.setTextColor(tv.resources.getColor(color))
    }.onFailure {
        tv.setTextColor(color)
    }
}

